home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / ms_dos / tool / esc / esc.c next >
Text File  |  1995-02-09  |  2KB  |  91 lines

  1. /*
  2.     tab=4,r.m=80
  3.     =======================================================================
  4.                         esc.c        program    Y.Gotoh (1995)
  5.     =======================================================================
  6. */
  7.  
  8. /* 外部ファイル読み込み */
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include <ctype.h>
  12. #include <string.h>
  13.  
  14. /* 関数定義 */
  15. void help(void);
  16.  
  17. /* メイン */
  18. int main(int argc , char *argv[])
  19. {
  20.     int i,num;
  21.     char *str;
  22.     
  23.     printf("<<esc.exe>>       program : Y.Gotoh\n\n");
  24.     
  25.     if(argc==1)    {                            /* オプション無しの時はヘルプ */
  26.         help();
  27.     }
  28.     
  29.     for( i=1 ; i<argc-1 ; i++ );                /* オプションの回数繰り返し */
  30.     {
  31.         printf("%d:%s\n",i,argv[i]);                    /* オプションを表示 */
  32.         
  33.         if( *argv[i] == '/' || *argv[i] == '-' )
  34.         {
  35.             tolower( *(argv[i]+1) );
  36.             
  37.             switch( *(argv[i]+1) )
  38.             {
  39.                 case 'h':                                        /* ヘルプ */
  40.                     help();
  41.                 
  42.                 case 'f':                        /* ファンクションキー定義 */
  43.                     if(strlen(argv[i])<4)    {            /* 定義文が短すぎ */
  44.                         printf("define error!\n");
  45.                         break;
  46.                     }
  47.                     num=atoi(argv[i]+2);                /* 登録番号を取得 */
  48.                     if(num>10)    {                    /* 10以上には登録不可 */
  49.                         printf("define error!\n");
  50.                         break;
  51.                     }
  52.                     else if(num==10)    str=argv[i]+4;    /* 10の時は取得文字 */
  53.                                                             /* 列をずらす */
  54.                         else    str=argv[i]+3;
  55.                     
  56.                     printf("\x1b[0;%d;\"%s\"p",num,str);            /* 定義 */
  57.                     printf("defined PF%d=\"%s\"\n",num,str);        /* 報告 */
  58.                     break;
  59.                 
  60.                 case 'c':
  61.                     if(strlen(argv[i])<3) num=7;        /* 番号無しの時は白 */
  62.                     else    num=atoi(argv[i]+2);
  63.                     printf("\x1b[%dm",num+30);                    /* 色変更 */
  64.                     break;
  65.                 
  66.                 case 'e':
  67.                     str=argv[i]+2;                            /* 文字列取得 */
  68.                     printf("\x1b%s",str);                            /* 実行 */
  69.                     break;
  70.                 
  71.                 default:
  72.                     printf("\"%s\"の意味が分かんないの (;_;)\n",argv[i]+1);
  73.             }
  74.         }
  75.         else printf("オプション以外の物があるぞ!!\n");
  76.     }
  77. }
  78.  
  79. void help()
  80. {
  81.     printf(
  82.         "    esc (/,-)[オプション]\n"
  83.         "オプション 一覧\n"
  84.         "  h               ・・・・・ ヘルプ\n"
  85.         "  f[num][string]  ・・・・・ [num]番のファンクションに[string]を定義\n"
  86.         "  c[col]          ・・・・・ テキストカラーを[col]番にする\n"
  87.         "  e[string]       ・・・・・ [string]を<esc>に続いて出力\n"
  88.         );
  89.         exit(0);
  90. }
  91.